package com.pan.admin.module.area.service.impl;

import com.pan.admin.common.utils.DateUtils;
import com.pan.admin.common.utils.SecurityUtils;
import com.pan.admin.module.area.dao.LoanProductPlanAreaDao;
import com.pan.admin.module.area.entity.LoanProductPlanArea;
import com.pan.admin.module.area.service.LoanProductPlanAreaService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 配置机构计划地区Service业务层处理
 *
 * @author ts
 * @date 2023-12-28
 */
@Service
public class LoanProductPlanAreaServiceImpl implements LoanProductPlanAreaService {
    @Autowired
    private LoanProductPlanAreaDao loanProductPlanAreaDao;

    /**
     * 根据ID获取列表配置机构计划地区
     *
     * @param id 配置机构计划地区主键
     * @return 配置机构计划地区
     */
    @Override
    public LoanProductPlanArea getById(Long id) {
        return loanProductPlanAreaDao.getById(id);
    }

    /**
     * 查询配置机构计划地区列表
     *
     * @param loanProductPlanArea 配置机构计划地区
     * @return 配置机构计划地区
     */
    @Override
    public List<LoanProductPlanArea> list(LoanProductPlanArea loanProductPlanArea) {
        return loanProductPlanAreaDao.list(loanProductPlanArea);
    }

    /**
     * 新增配置机构计划地区
     *
     * @param loanProductPlanArea 配置机构计划地区
     * @return 结果
     */
    @Override
    public int insertLoanProductPlanArea(LoanProductPlanArea loanProductPlanArea) {
        loanProductPlanArea.setCreateTime(DateUtils.getNowDate());
        loanProductPlanArea.setCreateBy(SecurityUtils.getUsername());
        return loanProductPlanAreaDao.insertLoanProductPlanArea(loanProductPlanArea);
    }

    /**
     * 批量新增配置机构计划地区
     *
     * @param list 配置机构计划地区
     * @return 结果
     */
    @Override
    public int insertListLoanProductPlanArea(List<LoanProductPlanArea> list) {
        String username = SecurityUtils.getUsername();
        for (LoanProductPlanArea item : list) {
            item.setCreateBy(username);
            item.setCreateTime(DateUtils.getNowDate());
        }
        return loanProductPlanAreaDao.insertListLoanProductPlanArea(list);
    }

    /**
     * 修改配置机构计划地区
     *
     * @param loanProductPlanArea 配置机构计划地区
     * @return 结果
     */
    @Override
    public int updateLoanProductPlanArea(LoanProductPlanArea loanProductPlanArea) {
        loanProductPlanArea.setUpdateTime(DateUtils.getNowDate());
        loanProductPlanArea.setUpdateBy(SecurityUtils.getUsername());
        return loanProductPlanAreaDao.updateLoanProductPlanArea(loanProductPlanArea);
    }

    /**
     * 批量删除配置机构计划地区
     *
     * @param ids 需要删除的配置机构计划地区主键
     * @return 结果
     */
    @Override
    public int batchDeleteById(Long[] ids) {
        return loanProductPlanAreaDao.batchDeleteById(ids);
    }

    @Override
    public List<String> getAreaCodeByPlanId(Long id) {
        return loanProductPlanAreaDao.getAreaCodeByPlanId(id);
    }

    /**
     * 功能描述: 根据计划ids查询
     *
     * @param list
     * @return java.util.List<com.pan.admin.module.area.entity.LoanProductPlanArea>
     * @author hrj
     */
    @Override
    public List<LoanProductPlanArea> getByPlanIds(List<Long> list) {
        return loanProductPlanAreaDao.getByPlanIds(list);
    }


    /**
     * 删除配置机构计划地区信息
     *
     * @param id 配置机构计划地区主键
     * @return 结果
     */
    @Override
    public int deleteById(Long id) {
        return loanProductPlanAreaDao.deleteById(id);
    }
}


